package com.wang.cloud.manage.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wang.cloud.manage.domain.co.RoleAddCo;
import com.wang.cloud.manage.domain.co.RolePageCo;
import com.wang.cloud.manage.domain.co.RoleUpdateCo;
import com.wang.cloud.manage.domain.entity.RoleEntity;
import com.wang.cloud.manage.domain.vo.RolePageVo;
import com.wang.cloud.manage.domain.vo.RoleVo;
import com.wang.cloud.manage.domain.vo.SelectVo;

import java.util.Collection;
import java.util.List;

/**
 * <p>
 * 系统-角色信息表 服务类
 * </p>
 *
 * @author wy
 * @since 2024-07-15
 */
public interface IRoleService extends IService<RoleEntity> {

    /**
     * 获取所有角色下拉列表
     *
     * @param
     * @return
     */
    List<SelectVo<Long>> allSelectList();

    /**
    * 分页查询
    *
    * @param pageCo
    * @return
    */
    IPage<RolePageVo> page(RolePageCo pageCo);

    /**
    * 获取详情
    *
    * @param id
    * @return
    */
    RoleVo getInfo(Long id);

    /**
    * 新增
    *
    * @param addCo
    * @return
    */
    Long add(RoleAddCo addCo);

    /**
    * 更新
    *
    * @param updateCo
    * @return
    */
    void update(RoleUpdateCo updateCo);

    /**
    * 删除
    *
    * @param id
    * @return
    */
    boolean del(Long id);

    /**
     * @param id
     * @param roleName
     * @return
     */
    Boolean nameIsRepeat(Long id, String roleName);



    /**
     * 判断 角色是否全部存在
     *
     * @param roleIds
     * @return
     */
    Boolean allExists(Collection<Long> roleIds);



}
